/**
 * SPDX-FileCopyrightText: 2023-2025 Sangfor Technologies Inc.
 * SPDX-License-Identifier: Mulan PSL v2
 */
import dayjs from "dayjs";
import relativeTime from "dayjs/plugin/relativeTime"

dayjs.extend(relativeTime)

/** ************************************时间格式化处理************************************/
export function dateFtt(fmt, date) { // author: meizz
    let o = {
        "M+": date.getMonth() + 1,     // 月份
        "d+": date.getDate(),     // 日
        "h+": date.getHours(),     // 小时
        "m+": date.getMinutes(),     // 分
        "s+": date.getSeconds(),     // 秒
        "q+": Math.floor((date.getMonth() + 3) / 3), // 季度
        "S": date.getMilliseconds()    // 毫秒
    };
    if (/(y+)/.test(fmt))
        fmt = fmt.replace(RegExp.$1, (String(date.getFullYear())).substr(4 - RegExp.$1.length));
    for (let k in o)
        if (new RegExp("(" + k + ")").test(fmt))
            fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr((String(o[k])).length)));
    return fmt;
}

// console.log(dateFtt("yyyy-MM-dd hh:mm:ss",time));
// console.log(dateFtt("yyyy-MM-dd",time));

/**
 * 时间格式化
 * @param {number} s 秒
 * @return {string} 把秒数转化成 hh:mm:ss这样的格式
 */
export function secToTime(s) {
    if (!s) {
        return '-'
    }
    if (s < 60) {
        return '1分'
    }
    let t = '';
    if (s > -1) {
        const hour = Math.floor(s / 3600);
        const min = Math.floor(s / 60) % 60;
        if (hour != 0) {
            t = hour + _('小时');
        }
        t += min + _('分');
        // const sec = s % 60;
        // if (hour < 10) {
        //     t = '0' + hour + _('小时');
        // } else {
        //     t = hour + _('小时');
        // }
        // if (min < 10) {
        //     t += '0';
        // }
        // // t += min + ':';
        // t += min + _('分');
        // if (sec < 10) {
        //     t += '0';
        // }
        // t += sec.toFixed(0); // 需求 暂时去除秒
    }
    return t;
}

/**
 * 业务功能
 * @param {time} 10位时间戳 单位秒
 * @return {string} 返回一个所需要字符串
 */
export function dataDiff(time) {
    const t = dayjs.unix(time).add(3, 'day').unix() - dayjs().unix()
    let result;
    // 一分钟 1000 毫秒 乘以 60
    const minute = 60;
    const hour = minute * 60;
    const day = hour * 24;
    const dayC = Math.floor(t / day);
    const hourC = Math.floor((t % day) / hour);
    const minC = Math.floor(((t % day) % hour) / minute);;
    if(dayC>0)  result = dayC + "天" + hourC + "小时" + minC + "分";
    else if(hourC>0)  result = hourC + "小时" + minC + "分";
    else if(minC>0) result = minC + "分";
    return result;
}
